//转义
var REGEXP_SINGLE_QUOTE = /'/g;
var REGEXP_LT = /</g;
var REGEXP_GT = />/g;
var REGEXP_QUOTE = /"/g;
function escapeHtmls (html) {
  return html.replace(REGEXP_LT, '').replace(REGEXP_GT, '').replace(REGEXP_QUOTE, '').replace(REGEXP_SINGLE_QUOTE, '');
}

//输入数据转义
function filters(elem) {
	var value = $(elem).val();
	var html = filterXSS(value, {
		whiteList:          [],        // 白名单为空，表示过滤所有标签
		stripIgnoreTag:     true,      // 过滤所有非白名单标签的HTML
		safeAttrValue: true,
		escapeHtml:escapeHtmls
	});
	$(elem).val(html);
}

//扩展Date的format方法 
Date.prototype.format = function (format) { 
var o = { 
"M+": this.getMonth() + 1, 
"d+": this.getDate(), 
"h+": this.getHours(), 
"m+": this.getMinutes(), 
"s+": this.getSeconds(), 
"q+": Math.floor((this.getMonth() + 3) / 3), 
"S": this.getMilliseconds() 
} 
if (/(y+)/.test(format)) { 
format = format.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length)); 
} 
for (var k in o) { 
if (new RegExp("(" + k + ")").test(format)) { 
format = format.replace(RegExp.$1, RegExp.$1.length == 1 ? o[k] : ("00" + o[k]).substr(("" + o[k]).length)); 
} 
} 
return format; 
} 
/** 
*转换日期对象为日期字符串 
* @param date 日期对象 
* @param isFull 是否为完整的日期数据, 
* 为true时, 格式如"2000-03-05 01:05:04" 
* 为false时, 格式如 "2000-03-05" 
* @return 符合要求的日期字符串 
*/ 
function getSmpFormatDate(date, isFull) { 
var pattern = ""; 
if (isFull == true || isFull == undefined) { 
pattern = "yyyy-MM-dd hh:mm:ss"; 
} else { 
pattern = "yyyy-MM-dd"; 
} 
return getFormatDate(date, pattern); 
} 
/** 
*转换当前日期对象为日期字符串 
* @param date 日期对象 
* @param isFull 是否为完整的日期数据, 
* 为true时, 格式如"2000-03-05 01:05:04" 
* 为false时, 格式如 "2000-03-05" 
* @return 符合要求的日期字符串 
*/ 
function getSmpFormatNowDate(isFull) { 
return getSmpFormatDate(new Date(), isFull); 
} 
/** 
*转换long值为日期字符串 
* @param l long值 
* @param isFull 是否为完整的日期数据, 
* 为true时, 格式如"2000-03-05 01:05:04" 
* 为false时, 格式如 "2000-03-05" 
* @return 符合要求的日期字符串 
*/ 
function getSmpFormatDateByLong(l, isFull) { 
return getSmpFormatDate(new Date(l), isFull); 
} 
/** 
*转换long值为日期字符串 
* @param l long值 
* @param pattern 格式字符串,例如：yyyy-MM-dd hh:mm:ss 
* @return 符合要求的日期字符串 
*/ 
function getFormatDateByLong(l, pattern) { 
return getFormatDate(new Date(l), pattern); 
} 
/** 
*转换日期对象为日期字符串 
* @param l long值 
* @param pattern 格式字符串,例如：yyyy-MM-dd hh:mm:ss 
* @return 符合要求的日期字符串 
*/ 
function getFormatDate(date, pattern) { 
if (date == undefined) { 
date = new Date(); 
} 
if (pattern == undefined) { 
pattern = "yyyy-MM-dd hh:mm:ss"; 
} 
return date.format(pattern); 
}

//时间间隔
function  DateDiff(sDate1,  sDate2){    //sDate1和sDate2是2006-12-18格式  
    var  aDate,  oDate1,  oDate2,  iDays  
    aDate  =  sDate1.split("-")  
    oDate1  =  new  Date(aDate[1]  +  '-'  +  aDate[2]  +  '-'  +  aDate[0])    //转换为12-18-2006格式  
    aDate  =  sDate2.split("-")  
    oDate2  =  new  Date(aDate[1]  +  '-'  +  aDate[2]  +  '-'  +  aDate[0])  
    iDays  =  parseInt(Math.abs(oDate1  -  oDate2)  /  1000  /  60  /  60  /24)    //把相差的毫秒数转换为天数  
    return  iDays  
}

function getDays(startDay){
	var date1= startDay+' 00:00:00';  //开始时间  
    var date2 = new Date();    //结束时间  
    var date3 = date2.getTime() - new Date(date1).getTime();   //时间差的毫秒数          
    //计算出相差天数  
    var days=Math.floor(date3/(24*3600*1000));
    return days;
}

//天转年龄段标记
function dayToAgeFlag(day){
	var aflag;
	   	if(day>=0 && day<=30){//1~30天
     	aflag = 1;
   	}else if(day>=31 && day<=1459){//1月~3岁末
     	aflag =2;
   	}else if(day>=1460 && day<=3284){//4岁~8岁末
     	aflag = 3;
   	}else if(day>=3285 && day<=5110){//9~13岁末
     	aflag = 4;
   	}else if(day>=5111 && day<=13139){//14~35岁末
     	aflag = 5;
   	}else if(day>=13140 && day<=24090){//36~65岁末
      	aflag = 6;
   	} else{//66以上
      	aflag = 7;
   	}
   	return aflag;
}

function getAges(ymd){
	var currentDate = new Date();
	var birthDate = new Date(ymd); // 假设的出生日期
	var ageYears = currentDate.getFullYear() - birthDate.getFullYear();
	var ageMonths = currentDate.getMonth() - birthDate.getMonth();
	var ageDays = currentDate.getDate() - birthDate.getDate();

	// 调整月份和天数，如果当前日子小于出生日期的日子，则月份减一，天数加上当月天数
	if (ageDays < 0) {
		ageMonths--;
		ageDays += new Date(currentDate.getFullYear(), currentDate.getMonth(), 0).getDate();
	}

	// 如果月份小于0，则年数减一，月份加上12
	if (ageMonths < 0) {
		ageYears--;
		ageMonths += 12;
	}
	var result = "";
	if(ageYears>0){
		result += (ageYears + "岁");
	}
	if(ageMonths>0){
		result += (ageMonths + "月");
	}
	if(ageDays>0){
		result += (ageDays + "日");
	}
	return result;

}